package com.study.jdbc.dao;

import java.io.Serializable;
import java.util.List;

import com.study.jdbc.domain.Customer;

/**
* @Name: CustomerDao
* @Description: 用户CRUD操作dao接口
* @Author: 李超	lc_jack@foxmail.com
* @CreateDate: 2017-2-16 下午6:51:29 
* @Version: V1.0
 */
public interface CustomerDao {
	
	/**
	* @Name: findCustomerById
	* @Description: 根据主键Id查询客户信息
	* @Author: 李超	lc_jack@foxmail.com
	* @Version: V1.0
	* @CreateDate: 2017-2-16 下午7:45:59
	* @Parameters: @param id
	* @Parameters: @return
	* @Return: Customer
	 */
	Customer findCustomerById(Serializable id) ;
	
	/**
	* @Name: findAllCustomers
	* @Description: 查询所有的客户信息
	* @Author: 李超	lc_jack@foxmail.com
	* @Version: V1.0
	* @CreateDate: 2017-2-16 下午7:46:12
	* @Parameters: @return
	* @Return: List<Customer>
	 */
	@Deprecated
	List<Customer> findAllCustomers() ;
	
	/**
	* @Name: saveCustomer
	* @Description: 保存客户信息
	* @Author: 李超	lc_jack@foxmail.com
	* @Version: V1.0
	* @CreateDate: 2017-2-16 下午7:46:21
	* @Parameters: @param customer
	* @Return: void
	 */
	void saveCustomer(Customer customer) ;
	
	/**
	* @Name: updateCustomer
	* @Description: 更新客户信息
	* @Author: 李超	lc_jack@foxmail.com
	* @Version: V1.0
	* @CreateDate: 2017-2-16 下午7:46:28
	* @Parameters: @param customer
	* @Return: void
	 */
	void updateCustomer(Customer customer) ;
	
	/**
	* @Name: deleteCustomerById
	* @Description: 根据主键id删除客户信息
	* @Author: 李超	lc_jack@foxmail.com
	* @Version: V1.0
	* @CreateDate: 2017-2-16 下午7:46:35
	* @Parameters: @param id
	* @Return: void
	 */
	void deleteCustomerById(Serializable id) ;
	
	/**
	* @Name: getTotalRecordsCount
	* @Description: 获取总记录数
	* @Author: 李超	lc_jack@foxmail.com
	* @Version: V1.0
	* @CreateDate: 2017-2-17 下午4:07:51
	* @Parameters: @return
	* @Return: int
	 */
	int getTotalRecordsCount() ;
	
	/**
	* @Name: findPageRecords
	* @Description: 查询分页显示记录集合
	* @Author: 李超	lc_jack@foxmail.com
	* @Version: V1.0
	* @CreateDate: 2017-2-17 下午4:08:02
	* @Parameters: @param startIndex
	* @Parameters: @param pageSize
	* @Parameters: @return
	* @Return: List<Customer>
	 */
	List<Customer> findPageRecords(int startIndex, int pageSize) ;
	
}
